// 诊室管理相关类型定义

/**
 * 诊室信息接口
 */
export interface Room {
  /** 诊室ID */
  roomId: number;
  /** 诊室名称 */
  roomName: string;
  /** 所属科室ID */
  deptId: number;
  /** 所属科室名称 */
  deptName: string;
  /** 是否接受挂号 1-是 0-否 */
  allowRegister: string;
  /** 是否接受预约 1-是 0-否 */
  allowAppointment: string;
  /** 负责人ID */
  managerId?: number;
  /** 负责人姓名 */
  managerName?: string;
  /** 启用状态 1-启用 0-停用 */
  isEnabled: string;
  /** 诊室描述 */
  roomDesc?: string;
  /** 诊室位置 */
  location?: string;
  /** 诊室容量 */
  capacity?: number;
  /** 创建时间 */
  createTime?: string;
  /** 更新时间 */
  updateTime?: string;
  /** 创建人 */
  createBy?: string;
  /** 更新人 */
  updateBy?: string;
}

/**
 * 诊室表单接口（新增/编辑时使用）
 */
export interface RoomForm {
  /** 诊室ID（编辑时需要） */
  roomId?: number;
  /** 诊室名称 */
  roomName: string;
  /** 所属科室ID */
  deptId: number;
  /** 是否接受挂号 */
  allowRegister: string;
  /** 是否接受预约 */
  allowAppointment: string;
  /** 负责人ID */
  managerId?: number;
  /** 启用状态 */
  isEnabled: string;
  /** 诊室描述 */
  roomDesc?: string;
  /** 诊室位置 */
  location?: string;
  /** 诊室容量 */
  capacity?: number;
}

/**
 * 诊室查询参数接口
 */
export interface RoomQuery {
  /** 诊室名称（模糊搜索） */
  roomName?: string;
  /** 所属科室ID */
  deptId?: number;
  /** 是否接受挂号 */
  allowRegister?: string;
  /** 是否接受预约 */
  allowAppointment?: string;
  /** 负责人姓名（模糊搜索） */
  managerName?: string;
  /** 启用状态 */
  isEnabled?: string;
  /** 当前页码 */
  pageNo: number;
  /** 每页条数 */
  pageSize: number;
}

/**
 * 诊室列表响应接口
 */
export interface RoomListResponse {
  /** 诊室列表 */
  list: Room[];
  /** 总条数 */
  total: number;
  /** 当前页 */
  pageNo: number;
  /** 每页条数 */
  pageSize: number;
  /** 总页数 */
  totalPages: number;
}

/**
 * 诊室操作类型枚举
 */
export enum RoomAction {
  /** 新增 */
  ADD = 'add',
  /** 编辑 */
  EDIT = 'edit',
  /** 查看详情 */
  VIEW = 'view',
  /** 启用 */
  ENABLE = 'enable',
  /** 停用 */
  DISABLE = 'disable',
  /** 删除 */
  DELETE = 'delete'
}

/**
 * 诊室状态枚举
 */
export enum RoomStatus {
  /** 启用 */
  ENABLED = '1',
  /** 停用 */
  DISABLED = '0'
}

/**
 * 接受挂号状态枚举
 */
export enum AllowRegisterStatus {
  /** 接受 */
  YES = '1',
  /** 不接受 */
  NO = '0'
}

/**
 * 接受预约状态枚举
 */
export enum AllowAppointmentStatus {
  /** 接受 */
  YES = '1',
  /** 不接受 */
  NO = '0'
}
